GitHub,
Ledger Devs Discord,
Developer Portal
@ledgerhq/hw-app-solana
Ledger Hardware Wallet Solana JavaScript bindings.
Are you adding Ledger support to your software wallet?
You may be using this package to communicate with the Solana Nano App.
For a smooth and quick integration:
- See the developers’ documentation on the Developer Portal and
- Go on Discord to chat with developer support and the developer community.
Notes
To run speculos-smoke
test make sure Speculos running (apdu port 9999 and api rest endpoint http://0.0.0.0:5000) with Solana app installed on it. Then run the command from root workspace:
$ yarn run ts-node packages/hw-app-solana/tests/speculos-smoke.ts
Troubleshooting
If ledger returns error 6808
- enable blind signature in settings (not needed for unit testing).
API
Table of Contents
Solana
Solana API
Parameters
transport
Transport a transport for sending commands to a devicescrambleKey
string a scramble key (optional, default "solana_default_scramble_key"
)
Examples
import Solana from "@ledgerhq/hw-app-solana";
const solana = new Solana(transport);
getAddress
Get Solana address (public key) for a BIP32 path.
Because Solana uses Ed25519 keypairs, as per SLIP-0010
all derivation-path indexes will be promoted to hardened indexes.
Parameters
path
string a BIP32 pathdisplay
boolean flag to show display (optional, default false
)
Examples
solana.getAddress("44'/501'/0'").then(r => r.address)
Returns Promise<{address: Buffer}> an object with the address field
signTransaction
Sign a Solana transaction.
Parameters
path
string a BIP32 pathtxBuffer
Buffer serialized transaction
Examples
solana.signTransaction("44'/501'/0'", txBuffer).then(r => r.signature)
Returns Promise<{signature: Buffer}> an object with the signature field
signOffchainMessage
Sign a Solana off-chain message.
Parameters
path
string a BIP32 pathmsgBuffer
Buffer serialized off-chain message
Examples
solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
Returns Promise<{signature: Buffer}> an object with the signature field
getAppConfiguration
Get application configuration.
Examples
solana.getAppConfiguration().then(r => r.version)
Returns Promise<AppConfig> application config object